Skip to main content
ℬ㏒.㎈ℓℯℛ.ⓧⓨℤ

Pebble 新年快乐

My new watch face for celebrating year of the monkey is available on the Pebble app store. It displays the date and day of the week in Chinese characters, along with the year's zodiac animal. The design ended up being too cluttered, maybe a little ugly, but being a sinophile I quite like it. I just wanted a watch face with the date / weekday in Chinese characters, but with the time still in easy-(for me)-to-read Arabic numerals.

Screenshots #

Date format: {month 1-12} + 月 yuè + {day 1-31} + 日

It's still year of the goat.

  1. 一月五日星期三7点半 Half past 7 on Wednesday 5 January.
  2. 一月二十七日星期六17点3分 17:03 on Saturday 27 January
  3. Showing the character for luck 福 on a Chinese lantern (upside down as per tradition)

Year of the monkey begins 2016年2月8号!

Code #

I programmed it in C because I'm that hardcore (and because Pebble). Chinese fonts are huge. Since I only required a subset of fonts, I used FontForge to extract the characters I needed from a Chinese font, and reassign the glyphs to Latin characters. I generated a FontForge script for extracting and mapping the glyphs, e.g. 星➡X

SelectAll()

SelectFewer(0u661f)
SelectFewer(<CODE OF CHINESE CHARACTER>)...

DetachAndRemoveGlyphs()

SelectNone()
Select(0u661f)
SetUnicodeValue(0u58)

SelectNone()
Select(<CODE OF CHINESE CHARACTER>)
SetUnicodeValue(<CODE OF LATIN CHARACTER TO MAP TO>)...

Reencode("latin1")
Reencode("compacted")

I didn't bother to read the FontForge docs so there is probably an easier way. I then had to make some manual modifications to the weight, size and position of the font to get it to display nicely on the Pebble.

Source is at :octocat: bcaller/pebble-cny-chinese.